<?php
	require_once(realpath(dirname(__FILE__)) . "/Baseobj.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Rubriquedesc.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Produit.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Image.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Document.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Reecriture.class.php");

	class Rubrique extends Baseobj{

		var $id;
		var $parent;
		var $lien;
		var $ligne;
		var $classement;

		const TABLE="rubrique";
		var $table=self::TABLE;

		var $bddvars = array("id", "parent", "lien", "ligne", "classement");

		function __construct($id = 0){
			parent::__construct();

			if($id > 0)
 			  $this->charger($id);
		}

		function charger($id){
			return $this->getVars("select * from $this->table where id=\"$id\"");
		}

		function changer_classement($id, $type){

			$this->charger($id);
			$remplace = new Rubrique();

			if($type == "M")
				$res = $remplace->getVars("select * from $this->table where parent=\"" . $this->parent. "\" and classement<" . $this->classement . " order by classement desc limit 0,1");

			else if($type == "D")
				$res = $remplace->getVars("select * from $this->table where parent=\"" . $this->parent. "\" and classement>" . $this->classement . " order by classement limit 0,1");

			if(! $res)
				return "";

			$sauv = $remplace->classement;

			$remplace->classement = $this->classement;
			$this->classement = $sauv;

            $remplace->maj();
            $this->maj();

		}


		function delete($requete){
				$resul = mysql_query($requete, $this->link);
				CacheBase::getCache()->reset_cache();		
		}

		function supprimer(){

			if ($this->id == 0 || $this->id == "") return;
			
			$rubriquedesc =  new Rubriquedesc();
			$produit =  new Produit();

			$query = "select * from $this->table where parent=\"$this->id\"";
			$resul = mysql_query($query, $this->link);

			$query = "select * from $produit->table where rubrique=\"$this->id\"";
			$resul2 = mysql_query($query, $this->link);



			if( ! mysql_num_rows($resul) && ! mysql_num_rows($resul2)){

				$image = new Image();

				$query = "select * from $image->table where rubrique=\"" . $this->id . "\" AND dossier=\"0\" AND contenu=\"0\" AND produit=\"0\" ";
				$resul = mysql_query($query, $image->link);
				while($row = mysql_fetch_object($resul)){
					$tmp = new Image();
					$tmp->charger($row->id);
					$tmp->supprimer();

				}

				$document = new Document();

				$query = "select * from $document->table where rubrique=\"" . $this->id . "\" AND dossier=\"0\" AND contenu=\"0\" AND produit=\"0\" ";
				$resul = mysql_query($query, $document->link);
				while($row = mysql_fetch_object($resul)){
					$tmp = new Document();
					$tmp->charger($row->id);
					$tmp->supprimer();

				}

				$this->delete("delete from $this->table where id=\"$this->id\"");
				$this->delete("delete from $rubriquedesc->table where rubrique=\"$this->id\"");

				$queryclass = "select * from $this->table where parent=$this->parent order by classement";
				$resclass = mysql_query($queryclass);

				if(mysql_num_rows($resclass)>0){
					$i = 1;
					while($rowclass = mysql_fetch_object($resclass)){
						$rub = new Rubrique();
						$rub->charger($rowclass->id);
						$rub->classement = $i;
						$rub->maj();
						$i++;
					}
				}

			}

			else {
				return 0;

			}


			return 1;

		}

		function nbprod(){
			$prod = new Produit();
			$query = "select count(*) as nb from $prod->table where rubrique=\"" . $this->id . "\"";
			$resul = mysql_query($query, $this->link);

			return mysql_result($resul, 0, "nb");
		}

		function aenfant(){

			$query = "select count(*) as nb from $this->table where parent=\"" . $this->id . "\"";
			$resul = mysql_query($query, $this->link);
			if(mysql_result($resul, 0, "nb"))
				return 1;
			else
				return 0;
		}

	}

?>